package cn.wolfcode.chatroom.core.config;

import cn.wolfcode.chatroom.core.ChatroomHandler;
import cn.wolfcode.chatroom.core.interceptor.UserAuthInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@Configuration
@EnableWebSocket
public class ChatroomWebSocketConfig implements WebSocketConfigurer {

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(chatroomMessageHandler(), "/chatroom")
                .setAllowedOrigins("*")
                .addInterceptors(userAuthInterceptor());
    }

    @Bean
    public UserAuthInterceptor userAuthInterceptor() {
        return new UserAuthInterceptor();
    }

    @Bean
    public ChatroomHandler chatroomMessageHandler() {
        return new ChatroomHandler();
    }
}
